#ifndef _UIWINDOWIMPL_H_
#define _UIWINDOWIMPL_H_

#include "stdafx.h"
#include "uicontrolimpl.h"

class CUiWindowsImpl : public IUIWindow, public CUnknownImp
{
public:
    CUiWindowsImpl(void);
    virtual ~CUiWindowsImpl(void);

public:
    BEGIN_STDCOM_MAP
    STDCOM_INTERFACE_ENTRY(IUIWindow)
    STDCOM_INTERFACE_ENTRY_UNKNOWN_(IUIWindow)
    // STDCOM_INTERFACE_BASECLASS_ENTRY_(CUiControlImpl, IUiControl)
    END_STDCOM_MAP

    // IUiWindows
    std_method_(void*, CreateUiWindow)(void* hWnd);
    std_method_(int, DestroyUiWindow)();
    std_method_(int, AddUiWindow)(void* hWnd);
    std_method_(int, ShowUiWindow)(int nCmdShow);
    std_method_(int, SetResourceFile)(LPSTRING file);
    std_method_(int, SetResource)(_pid_instance inst, LPSTRING path);
    std_method_(int, SendMessage)(const NotifyEvent* event);
    std_method_(int, PostMessage)(const NotifyEvent* event);
    std_method_(int, TranslateMessage)(const NotifyEvent* event);
    std_method(BindEvent)(IBase* pEvents);
    std_method(UnBindEvent)();

private:
    _lComPtr<IUIEvent> m_pEvent;
};

#endif
